OOMU
Tenta 150115 = Alla svaren nedan är korrekta, enligt Tenta-Rättning. '''1. A Java compiler translates Java source code into _________''' * Java bytecode * machine code * assembly code * another high level language code '''2. Which of the following statements are true?''' * A default constructor is provided automatically if no constructors are explicitly declared in the class. * At least one constructor must always be defined explicitly. * Every class has a default constructor. * The default constructor is a no-arg constructor 3. '''Which of the following statements are true?''' * To override a method, the method must be defined in the subclass using the same signature and compatible return type as in its superclass. * Overloading a method is to provide more than one method with the same name but with different signatures to distinguish them. * It is a compilation error if two methods differ only in return type in the same class. * A private method cannot be overridden. If a method defined in a subclass is private in its superclass, the two methods are completely unrelated. * A static method cannot be overridden. If a static method defined in the superclass is redefined in a subclass, the method defined in the superclass is hidden 4. '''Which of the following statements are true?''' * Inner classes can make programs simple and concise. * An inner class can be declared public or private subject to the same visibility rules applied to a member of the class. * An inner class can be declared static. A static inner class can be accessed using the outer class name. A static inner class cannot access nonstatic members of the outer class. * An inner class supports the work of its containing outer class and is compiled into a class named OuterClassName$InnerClassName.class. '''5. Vilka av följande är white-box testningstekniker?''' * Branch Testing * Boundry value analysis * Error guessing * Path testing '''6. Vilka av följande använder en klient för att försöka koppla upp sig mot en server?''' * Socket s = new Socket(, ); * Socket s = Socket.accept(); * Socket s = new Socket(); * Socket s = Socket.connect(,); '''7. Vilken av följande funktioner används av en tråd för att vänta på att en annan tråd skall avsluta sitt arbete innan den fortsätter sin exekvering?''' * yield(); * join(); * sleep(long milliseconds) * suspend(); '''8. Vilken av följande är statement-funktioner för att ställa frågor till en databas?''' * execute(); * query(); * executeUpdate(); * fetchResult(); '''9.Vilka av följande är grafiska set av layouter som används för att organisera komponenter i Javas grafiska kontainerklasser?''' * BorderLayout, FlowLayout, CardLayout * Gridlayout, LineLayout, OverlayLayout * StackLayout,CollumnLayout, RowLayout * GridBagLayout, GridLayout, Boxlayout '''10. Vilka av följande är set av namn på händelsetyper som garanteras av Java-komponenterna: JButton, JCheckBox''' * ActionEvent, ItemEvent, WindowEvent * KeyEvent, ClickEvent, ActivateEvent * ActionEvent,MouseEvent,ClickEvent * StopEvent, SleepEvent, SelectEvent '''11.Vilka av följande designmönster innehåller endast behavioural patterns?''' * Observer, Strategy, Visitor * Observer, Adapter, Decorator * Singleton, Composite, Bridge * Command, Iterator, Interpretor '''12. Vilka av följande påståenden är sanna angående Singelton-Mönstret?''' * Alla metoder uton getInstance() skall vara pricate * Alla metoder skall vara static * En singleton-class måste ha minst ett static attribut * Det är möjligt att skapa fler än en instans av en Singleton '''13. Vilka av följande är effekter som Decorator-mönstret medför?''' * Funktionalitet för ett objekt kan bestämmas under körning. * Objekt av samma klass kan ha olika beteenden. * Det skapas inte onödigt många objekt. * Möjliggör broadcasting av metodanrop. '''14. Inception-fasen i iterativ och inkrementell utveckling fokuserar huvudsakligen på att:''' * Fånga krav för systemet * Fånga krav för utvecklingsprojektet * Utveckla en systemprototyp * Definiera enhetstester '''15. Kryssa i alternativ som är korrekta på svarsbladet.''' * Det kan finnas många olika delar i ett use case * Extensions beskriver saker som inte är krav och som därför är av mindre vikt. * Endast funktionella krav får tas med i use casen. Ickefunktionella krav måste istället beskrivas i supplementary specification. * Den viktigaste delen av ett use case är den del som beskriver det typiska händelseflödet. '''16.Betrakta nedanstående diagram och ange vilka av alternativen som korrekt beskriver diagrammet''' . * Diagrammet visar två stycken sekvensdiagram som visar hur systemanropet playGame realiseras i systemet. * Player-Objektet har ett samlingsobjekt med tärningar. * Det finns lika många tärningar som spelare * Metoden takeTurn skulle kunna implementeras på följande sätt enligt diagrammet (givet att Board är en singleton och att location är en synlig instance av Piece): Void takeTurn() { Int fvTot = 0, fv; Square oldLoc, newLoc; for (int i = 0; i < dice.length; i++) { fv = dice[i].getFaceValue(); fvTot += fv; } oldLoc = location.getLocation(); newLoc = Board.getInstance().getSquare(oldLoc,fvTot); location.setLocation(newLoc); } '''17. Persistance frameworks ( som t ex Hibernate) används för att hantera interaktion med persistent data, Kryssa i alternativ som är korrekta på svarsbladet.''' * Ett syfte med persistenta frameworks är att minska representationsgapet mellan objekt i lösningsdomänen och relationsmodellen i databaser. * Hibernate använder ett eget språk som måste användas istället för SQL * Det finns ett språk som definierats explicit för persistenta ramverk, Persistance Quary Language PQL. * En princip som ofta utnyttjas i ramverk är den s k Hollywood Principle som innebär: "don't call us, we call you" '''18. Kryssa i alternativ som är korrekta avseende arkitekturanalys på svarsbladet.''' * Variationspunkter är alla de ställen i systemet där objekt ändrar tillstånd under exekveringen. * En utvecklingspunkt är en del av arkitekturen som ännu inte är färdigdesignad * Variationspunkter utgörs av variationer i det existerande systemet eller dess krav som måste kunna stödjas. * Utvecklingspunkter utgörs av spekulativa förändringar som kan uppstå i framtiden men som inte är aktuella nu. '''19. Kryssa i alternativ som är korrekta avseende vad use case-realisering innebär på svarsbladet.''' * Att det finns en röd tråd från use-case modellens olika delar in i designen som i (SSD) realiseras genom interaktioner och relationer mellan objekt * Use case-realiering är en del av use case modellen som används för att förtydliga hur systemet kommer att realisera use caset från aktörens perspektiv. * Att det finns en röd tråd från den textuella beskrivningen av use case-instanserna via de operationer som indentiferas i SSD vidare genom operationskontrakt som beskriver vilka förändringar metoderna skall resultera i. * Use case-realisering är ett annat namn på operationskontrakt, då dessa viar hur use case-operationer realiseras. '''20. Testning är en viktig aspekt av extreme programming. Kryssa i alternativ som är korrekta på svarsbladet.''' * Principen är att först skriva koden och sedan skriva test som testar det man implementerat * Principen är att först skriva testen och sedan skriva koden som testen är tänkta att testa. * Eftersom varje produktionsklass i lösningen har en testklass som innehåller de test som klassen skall passera så underlättas att göra säkra ändringar som inte leder till felaktigheter. * Innnan man börjar implementera en klass skriver man först samtliga test som den färdiga klassen skall passera. '''Tentamen 2015-03-05''' '''1. Which of the following statements are true?''' a. A constructor may be static b. A constructor may be private. c. A constructor may invoke a static method. d. A constructor may invoke an overloaded constructor. 2'''. Which of the following statements are true?''' a. Each event class has a corresponding listener interface. b. The listener object's class must implement the corresponding event-listener interface. c. A source may have multiple listeners. d. The listener object must be registered by the source object. 3'''. An instance of _______ describes system errors. If this type of error occurs, there is little you can do beyond notifying the user and trying to terminate the program gracefully.''' a. RuntimeException b. Exception c. Error d. Throwable 4'''. Which of the following statements are true?''' a. Applets are not allowed to read from, or write to, the file system of the computer. b. Applets are not allowed to run programs on the browsers computer. c. Applets are not allowed to to establish connections between the users computer and any other computer. d. In general, an applet can be converted to an application without loss of funcionality. 5'''. Agile-metodernas manifest förespråkar att systemutvecklingsprojekt bör prioritera (bl. a.):''' a. Användandet av rätt verktyg och processer. b. Omfattande dokumentation. c. Kundsamarbete. d. Följandet av ursprunglig planering. 6'''. Conditions är ett koncept som används för att underlätta för olika trådar att kommunicera med varandra. Vilka av de följande är sätt att skapa condition-objekt i Java?''' a. Condition bufferFull = new Condition(); b. Lock lock = new ReentrantLock(); c. Condition bufferFull = new Condition(new ReentrantLock()); d. Condition bufferFull = new Condition(new Mutex()); '''7. När man skapar dialogrutor i Java kan dialogrutan vara antingen modal eller icke-modal. Vad är följderna av att en startad dialogruta är modal?''' a. Dialogrutan kan utökas med ytterligare funktionalitet under körning. b. Applikationen som startade dialogrutan går inte att interagera med innan dialogrutan har avslutats. c. Applikationen som startade dialogrutan stängs av när dialogrutan avslutas. d. Applikationen som startade dialogrutan kan inte hämta någon information från dialogrutan när den avslutas. '''8. Java har två standarder för att beskriva grafiska komponenter; SWING och AWT. Vilka av följande påståenden är korrekt angående de båda standarderna.''' a. SWING-komponenter ritas direkt av Java och ser därmed lika ut på olika plattformar. b. AWT-komponenter har inbyggt stöd för att lägga till olika ramar (borders). c. AWT-komponenter anses vara "lightweight" medan SWING-komponenter anses vara "heavyweight". d. SWING-komponenter har inbyggt stöd för att lägga till tooltips. '''9. Java använder sig av layouter för att organisera grafiska komponenter. Vilka av följande är namn på layouter som finns fördefinierade i Java.''' a. BorderLayout b. MatrixLayout c. FlowLayout d. GridLayout '''10. Java använder sig av händelser (events) för att kommunicera när grafiska komponenter interageras med. Vilka av följande påståenden är sanna angående händelser (events)?''' a. En händelse kan genereras för en komponent om musen förflyttas. b. Om användaren trycker på en knapp så genererar Java ett ActionEvent. c. När ett fönster öppnas eller stängs genererar Java ett WindowEvent. d. Händelser i Java har tillhörande lyssnargränssnitt (listener interfaces) som används för att fånga upp genererade händelser. '''Analys- och designteori''' '''11. Mjukvarutestning kan utföras på ett antal olika nivåer, vilka av följande testmodeller används vid integreringstestning?''' a. Big Bang testing b. Top-Down testing c. Branch testing d. Boundary value analysis '''12. Vilka av följande koddesignproblem skulle ett adaptermönster vara en bra lösning för?''' a. Vilket objekt som helst i hela systemet ska kunna använda klassen. b. En klass har inte det publika gränssnitt dess klient behöver. c. En grupp av objekt skall kunna hanteras på samma sätt som ett enskilt objekt. d. Både klassens implementation och dess gränssnitt behöver ändras ofta. '''13. Vilka av följande beskrivningar är starka sidor hos Decorator-mönstret?''' a. Undviker komplex logik uppbyggd med upprepade if-satser. b. Objekt av samma klass kan ha olika beteende. c. Interaktionen mellan objekt hanteras på ett och samma ställe. d. Funktionalitet för ett objekt bestäms under körning. '''14. Varför kan det vara bra att använda en trådpool (Thread Pool) om man vill utföra många små uppgifter asynkront?''' a. Trådpoolen sänker prestandakostnaden för att skapa nya trådar. b. Trådpoolen sköter asynkroniseringen mellan de olika uppgifterna som den exekverar. c. Att starta en ny tråd för varje uppgift kan begränsa genomströmning och orsaka dålig prestanda. Genom att använda en trådpool skapas inte en ny tråd för varje uppgift. d. Trådpoolen ger en högre kontroll av hur många uppgifter som utförs på samma gång. '''15. Kryssa i alternativ som är korrekta på svarsbladet.''' a. Det kan finnas många olika delar i ett use case. b. Extensions beskriver saker som inte är krav och som därför är av mindre vikt. c. Endast funktionella krav får tas med i use casen. Ickefunktionella krav måste istället beskrivas i supplementary specifikation. d. Den viktigaste delen av ett use case är den del som beskriver det typiska händelseflödet. '''18. Applikationslager kan ingå i mjukvaruarkitekturen. Kryssa i alternativ som är korrekta på svarsbladet.''' a. Applikationslager är ett annat namn för domänlagret. b. Ett applikationslager används för att bl a hantera sessioner. c. Applikationslagret separerar UI- och domänlagren och används t ex för att styra sessionshantering och fönsternavigering. d. Applikationslager separerar domänlagret från de tekniska lagren och används för att styra vilka lågnivåtjänster applikationen skall utnyttja. '''19. Aktivitetsdiagram är en diagramtyp inom UML. Kryssa i alternativ som är korrekta på svarsbladet.''' a. Visar tillstånd hos entiteter som transaktioner, use case och objekt. b. Lämpligt för att beskriva komplexa processer som arbetsflöden, dataflöden och algoritmer. c. Aktivitetsdiagram definierar alltid bara ett processflöde. d. Det kan finnas flera parallella processflöden. '''20. Vilka av följande påståenden är korrekta angående utveckling enligt Unified Process.''' a. Arbetet med discipliner avlöser varandra så att man först avslutar arbetet med en disciplin innan arbetet med nästa disciplin påbörjas. b. Faserna avlöser varandra så att man först avslutar arbetet med en fas innan arbetet med nästa fas påbörjas. c. Utvecklingen av ett system delas upp i faser, som i sin tur oftast består av flera iterationer. d. Utvecklingen av ett system delas upp i iterationer som i sin tur oftast består av flera artefakter.